package nl.saxion.act.bus;

import java.util.List;

public abstract class AbstracteBuschauffeur {
	private BusActor busActor;

	public void setBusActor( BusActor eenBusActor ) {
		busActor = eenBusActor;
	}

	protected int             getBusnummer()     { return busActor.getBusNummer();     }
    protected int             getMaxPassagiers() { return busActor.getMaxPassagiers(); }
    protected Locatie         getLocatie()       { return busActor.getLocatie();       }
	protected boolean         isBusVol()         { return busActor.isBusVol();         }
	protected boolean         isBusGestart()     { return busActor.isBusGestart();     }
	protected boolean         isBusdeurOpen()    { return busActor.isBusDeurOpen();    }
	protected double          getBussnelheid()   { return busActor.getBusSnelheid();   }
	protected List<Reiziger>  getBuspassagiers() { return busActor.getBusPassagiers(); }

	protected void openBusdeur()              { busActor.openDeur();  }
	protected void sluitBusdeur()             { busActor.sluitDeur(); }
	protected void stopBusmotor()             { busActor.stop();      }
	protected void startBusmotor()            { busActor.start();     }
	protected void accelereerEnGaRijden()     { busActor.versnel();   }
	protected void deaccelereerTotStilstand() { busActor.rem();       }

	protected  void laatReizigerInstappen ( Reiziger reiziger, Halte halte ) { busActor.laatReizigerInstappen ( reiziger, halte ); }
	protected  void laatReizigerUitstappen( Reiziger reiziger, Halte halte ) { busActor.stapUit( reiziger, halte );                }

	protected abstract void handelHalteAf( Halte halte );
}
